home *** CD-ROM | disk | FTP | other *** search
/ PC Elektro 3 / PC-Elektro-3-cd1.bin / KBan 2.0 / KBANSRC.LZH / SRC / PROG / NETLIST / NETITEM.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-23  |  1.8 KB  |  58 lines

  1. // the declaration of class NET_ITEM
  2. // Copyright (C) 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
  3.  
  4. #ifndef _NETITEM_H_
  5. #define _NETITEM_H_
  6.  
  7. #include "../kbandata/lineelem.h"
  8. #include "../kbandata/pinelem.h"
  9.  
  10. class NET_ITEM {
  11. public:
  12.   enum ITEM_TYPE { ITEM_PIN, ITEM_LINE };
  13. private:
  14.   ITEM_TYPE     m_type;
  15.   uint          m_layer_number;
  16.   int           m_net_number;
  17.   PIN_ELEMENT*  m_pin_elem_ref;
  18.   PIN_ELEMENT   m_pin_elem;
  19.   LINE_ELEMENT  m_line_elem;
  20. public:
  21.   NET_ITEM() {}
  22.   NET_ITEM(uint layer_number, const PIN_ELEMENT& pin_elem, PIN_ELEMENT* pin_elem_ref)
  23.     : m_type(ITEM_PIN),
  24.       m_layer_number(layer_number),
  25.       m_pin_elem_ref(pin_elem_ref),
  26.       m_pin_elem(pin_elem),
  27.       m_line_elem() {}
  28.   NET_ITEM(uint layer_number, const LINE_ELEMENT& line_elem)
  29.     : m_type(ITEM_LINE),
  30.       m_layer_number(layer_number),
  31.       m_pin_elem_ref(NULL),
  32.       m_pin_elem(),
  33.       m_line_elem(line_elem) {}
  34.  
  35.   bool operator==(const NET_ITEM& rval) const; // illegal (undefined)
  36.   bool operator!=(const NET_ITEM& rval) const; // illegal (undefined)
  37.   bool operator<(const NET_ITEM& rval) const; // illegal (undefined)
  38.   bool operator>(const NET_ITEM& rval) const; // illegal (undefined)
  39.  
  40.   ITEM_TYPE type() const { return m_type; }
  41.   uint layer_number() const { return m_layer_number; }
  42.   uint net_number() const { return m_net_number; }
  43.   const PIN_ELEMENT&  get_pin_element () const { return m_pin_elem;  }
  44.   const LINE_ELEMENT& get_line_element() const { return m_line_elem; }
  45.  
  46.   void set_net_number(uint net_number) {
  47.     m_net_number = net_number;
  48.   }
  49.   void set_final_net_number(uint net_number) {
  50.     m_net_number = net_number;
  51.     if(m_type == ITEM_PIN) {
  52.       m_pin_elem_ref->set_net_number(net_number);
  53.     }
  54.   }
  55. };
  56.  
  57. #endif /* _NETITEM_H_ */
  58.